package com.ltmall.api.weixin.pay.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/weixin")
public class WeiXinController {

//	@Autowired(required = true)
//	private WeiXinService weiXinService;
//
//	@RequestMapping("/payNotify")
//	public void payNotify(HttpServletRequest request,
//			HttpServletResponse response, @RequestBody String xml,
//			PrintWriter writer) {
//		try {
//			Map<String, String> map = XMLUtil.doXMLParse(xml);
//			if ("SUCCESS".equals(map.get("return_code"))) {
//				weiXinService.payNotify(map);
//				response.resetBuffer();
//				response.setContentType("text/xml; charset=UTF-8");
//				String returnXml = "<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>";
//				writer.print(returnXml);
//				writer.flush();
//			}
//		} catch (Exception e) {
//			e.printStackTrace();
//		}
//	}
//
//	@RequestMapping("/payOk")
//	public void payOk(HttpServletRequest request, HttpServletResponse response,
//			PrintWriter writer) {
//		String out_trade_no = request.getParameter("out_trade_no");
//
//		Map<String, String> outParams = new HashMap<String, String>();
//
//		try {
//			outParams.put("retcode", "0");
//			outParams.put("retmsg", weiXinService.payOk(out_trade_no));
//		} catch (Exception e) {
//			e.printStackTrace();
//			outParams.put("retcode", "-1");
//			outParams.put("retmsg", "支付确认失败");
//		}
//
//		response.resetBuffer();
//		response.setHeader("ContentType", "text/json");
//		Gson gson = new Gson();
//		writer.println(gson.toJson(outParams));
//		writer.flush();
//
//	}
//
//	/**
//	 * 手机支付
//	 * @param request
//	 * @param response
//	 * @param writer
//	 */
//	
//	@RequestMapping("/pay")
//	public void sign(HttpServletRequest request, HttpServletResponse response,
//			PrintWriter writer) {
//		String out_trade_no = WeixinUtils.getOut_trade_no();
//		try {
//			// 获取提交的商品价格
//			String order_price = request.getParameter("order_price");
//			
//			// 获取提交的商品名称
//			String product_name = request.getParameter("product_name");
//			
//			// app支付客户端ip
//			String ip = request.getParameter("ip");
//			
//			System.out.println("order_price--->"+order_price);
//			System.out.println("product_name--->"+product_name);
//			System.out.println("ip--->"+ip);
//			
//			/**
//			 * 调用统一支付接口
//			 */
//			
//			String notifyURL = Path.weixin_pay_notifyurl_goods;
//			
//			Map<String, String> map = WeixinUtils.payUnifiedorder(product_name, Integer.parseInt(order_price), ip, out_trade_no,notifyURL);
//			TreeMap<String, String> outParams = new TreeMap<String, String>();
//			if (null != map) {
//				String app_id = map.get("appid");
//				/*
//				 * 获取预支付id
//				 */
//				String prepayid = map.get("prepay_id");
//				/**
//				 * 创建预支付sign签名
//				 */
//				String noceStr = RandomStringGenerator.getRandomStringByLength(32);
//				String timeStamp = String.valueOf((System.currentTimeMillis() / 1000));
//				List<NameValuePair> signParams = new LinkedList<NameValuePair>();
//				signParams.add(new BasicNameValuePair("appid", app_id));
//				signParams.add(new BasicNameValuePair("noncestr", noceStr));
//				signParams.add(new BasicNameValuePair("package", "Sign=WXPay"));
//				signParams.add(new BasicNameValuePair("partnerid", Constants.MCH_ID));
//				signParams.add(new BasicNameValuePair("prepayid", prepayid));
//				signParams.add(new BasicNameValuePair("timestamp", timeStamp));
//				String sign = WeixinUtils.genAppSign(signParams);
//
//				/**
//				 * 支付接口业务处理
//				 */
//				weiXinService.payBackSerivce(signParams, map);
//				
//				/**
//				 * 返回手机端支付需要的全部参数
//				 */
//				outParams.put("retcode", "0");
//				outParams.put("retmsg", "OK");
//				outParams.put("appid", Constants.APP_ID);
//				outParams.put("noncestr", noceStr);
//				outParams.put("partnerid", Constants.MCH_ID);
//				outParams.put("package", "Sign=WXPay");
//				outParams.put("prepayid", prepayid);
//				outParams.put("out_trade_no", out_trade_no);
//				outParams.put("timestamp", timeStamp);
//				outParams.put("sign", sign);
//			} else {
//				outParams.put("retcode", "-1");
//				outParams.put("retmsg", "错误：获取不到Token");
//			}
//			response.resetBuffer();
//			response.setHeader("ContentType", "text/json");
//			Gson gson = new Gson();
//			writer.println(gson.toJson(outParams));
//			writer.flush();
//		} catch (Exception e) {
//			e.printStackTrace();
//		}
//
//	}

}
